class Solution03 {
	public String reverseStr(String s, int k) {
		char[] ch = s.toCharArray();
		int start = -1;
		int end = -1;
		for (int i = 0; i < ch.length; i += 2 * k) {
			start = i;
			// 确定翻转区间，左闭右闭[start, end]
			// if (start + k <= ch.length) {
			// // 剩余字符数大于等于k
			// end = start + k - 1;
			// } else {
			// // 剩余字符数小于k
			// end = ch.length - 1;
			// }
			end = Math.min(start + k, ch.length) - 1;

			// 反转逻辑
			while (start < end) {
				char tmp = ch[start];
				ch[start++] = ch[end];
				ch[end--] = tmp;
			}
		}
		return new String(ch);
	}
}
